// #ifndef VUE3
import Vue from 'vue'
import App from './App'
import store from './store/store.js'
//导入网络请求的包
import {$http} from '@escook/request-miniprogram'

uni.$http = $http

//请求的根路径
// $http.baseURL = 'https://api-hmugo-web.itheima.net'

//请求拦截器
$http.beforeRequest = function(options) {
  uni.showLoading({
    title: '数据加载中...'
  })
   //判断请求的是否为有权限的API接口
   if(options.url.indexOf('/my/') !== -1) {
     options.header = {
       Authorization: store.state.m_user.token
     }
   }
}
//封装弹框的方法
uni.$showMsg = function(title = '数据请求失败！', duration = 1500) {
  uni.showToast({
    title,
    duration,
    icon: 'none',
  })
}
//响应拦截器
$http.afterRequest = function() {
  uni.hideLoading()
}


console.log('$http 挂载成功:', typeof uni.$http === 'function')

Vue.config.productionTip = false

App.mpType = 'app'

const app = new Vue({
    ...App,
    //将 store 挂载到 Vue实例商
    store,
})
app.$mount()
// #endif

// #ifdef VUE3
import { createSSRApp } from 'vue'
import App from './App.vue'
import {$http} from '@escook/request-miniprogram'
import{ createStoreApp } from './store/store.js' 
export function createApp() {
  const app = createSSRApp(App)
  // 调用 createStoreApp 拿到带 store 的 app ，并合并到当前应用
    const { app: storeApp } = createStoreApp() 
  app.config.globalProperties.$http = $http
  uni.$http = $http
  
  // 合并两个 app 的配置（若有全局属性、指令等，需确保覆盖正确）
    Object.assign(app._context, storeApp._context) 

  return {
    app
  }
}
// #endif